251d6cc7d2f76b6d614f6aff10f339c6effe4ef0,plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleResourceCompilerConfigurationGenerator.java,GradleResourceCompilerConfigurationGenerator,generateBuildConfiguration,#,86

Before Change



    final File gradleConfigFile = new File(projectSystemDir, GradleProjectConfiguration.CONFIGURATION_FILE_RELATIVE_PATH);

    GradleProjectConfiguration projectConfig = new GradleProjectConfiguration();
    for (Module module : myContext.getCompileScope().getAffectedModules()) {
      if (!ExternalSystemApiUtil.isExternalSystemAwareModule(GradleConstants.SYSTEM_ID, module)) continue;

      if(shouldBeBuiltByExternalSystem(module)) continue;

      final String gradleProjectPath = module.getOptionValue(ExternalSystemConstants.ROOT_PROJECT_PATH_KEY);
      assert gradleProjectPath != null;
      final ExternalProject externalRootProject = myExternalProjectMap.get(gradleProjectPath);
      if (externalRootProject == null) {
        myContext.addMessage(CompilerMessageCategory.ERROR,
                             String.format("Unable to make the module: %s, related gradle configuration was not found. " +
                                           "Please, re-import the Gradle project and try again.",
                                           module.getName()), VfsUtilCore.pathToUrl(gradleProjectPath), -1, -1);
        continue;
      }

      ExternalProject externalProject = myExternalProjectDataService.findExternalProject(externalRootProject, module);
      if (externalProject == null) {
        LOG.warn("Unable to find config for module: " + module.getName());
        continue;
      }

      GradleModuleResourceConfiguration resourceConfig = new GradleModuleResourceConfiguration();
      resourceConfig.id = new ModuleVersion(externalProject.getGroup(), externalProject.getName(), externalProject.getVersion());
      resourceConfig.directory = FileUtil.toSystemIndependentName(externalProject.getProjectDir().getPath());

      final ExternalSourceSet mainSourcesSet = externalProject.getSourceSets().get("main");
      addResources(resourceConfig.resources, mainSourcesSet, ExternalSystemSourceType.RESOURCE);

      final ExternalSourceSet testSourcesSet = externalProject.getSourceSets().get("test");
      addResources(resourceConfig.testResources, testSourcesSet, ExternalSystemSourceType.TEST_RESOURCE);

      final CompilerModuleExtension compilerModuleExtension = CompilerModuleExtension.getInstance(module);
      if(compilerModuleExtension != null && compilerModuleExtension.isCompilerOutputPathInherited()) {
        String outputPath = VfsUtilCore.urlToPath(compilerModuleExtension.getCompilerOutputUrl());
        for (ResourceRootConfiguration resource : resourceConfig.resources) {
          resource.targetPath = outputPath;
        }

        String testOutputPath = VfsUtilCore.urlToPath(compilerModuleExtension.getCompilerOutputUrlForTests());
        for (ResourceRootConfiguration resource : resourceConfig.testResources) {
          resource.targetPath = testOutputPath;
        }
      }

      projectConfig.moduleConfigurations.put(module.getName(), resourceConfig);
    }

    final Document document = new Document(new Element("gradle-project-configuration"));
    XmlSerializer.serializeInto(projectConfig, document.getRootElement());
    buildManager.runCommand(new Runnable() {
      @Override
      public void run() {

After Change


      projectConfig.moduleConfigurations.putAll(affectedModuleConfigurations);

      final Document document = new Document(new Element("gradle-project-configuration"));
      XmlSerializer.serializeInto(projectConfig, document.getRootElement());
      buildManager.runCommand(new Runnable() {
        @Override
        public void run() {